The more I read about this, the more convinced I am that you are actually right about this, though there may be other issues that you need to address.
But a TCP host connecting, then stopping talking in this way seems very symptomatic of a path MTU problem an example of which is very nicely explained here:
http://www.ussg.iu.edu/hypermail/linux/net/9701.1/0097.html
The root cause in our case is probably that the firewall blocks ICMP (must ask the security guys why they do that), so the ICMP need to fragment message is never seen by the host at the remote end. Forcing the MTU size to a fixed lower value effectively masks this problem, but a proper fix would be to get path MTU discovery working as intended.
In your case, I don't know what might be causing path MTU discovery to fail. Perhaps a remote firewall or perhaps your ISP's or someone else's routers are in the way (traceroute would show you which).